# -*- coding: utf-8 -*-
"""
@Time ： 2020/8/14 10:44
@Auth ： Mr. William 1052949192
@Company ：特斯汀学院 @testingedu.com.cn
@Function ：logging日志打印模块化封装
"""
import logging
import os
import yaml

# 获取当前文件的绝对路径
path = os.path.split(os.path.realpath(__file__))[0]
projectname = 'VipFrame08'
# 处理是不是主入口运行
if path.endswith(projectname):
    pass
else:
    idx = path.find(projectname)
    path = path[:idx+len(projectname)]

# 读取配置文件
with open(file=path + "/lib/conf.yaml", mode='r', encoding="utf-8") as file:
    logging_yaml = yaml.load(stream=file, Loader=yaml.FullLoader).get('logger')
    logging_yaml['filename'] = path + logging_yaml.get('filename')

    handler = [logging.FileHandler(filename=logging_yaml['filename'], encoding="utf-8")]
    logging_yaml.pop('filename')
    logging_yaml.pop('filemode')
    # 配置logging日志：主要从文件中读取handler的配置、formatter（格式化日志样式）、logger记录器的配置
    logging.basicConfig(handlers=handler,**logging_yaml)

# 获取根记录器：配置信息从yaml文件中获取，只会输出到日志文件
logger = logging.getLogger()

# 创建输出到控制台的输出流
console = logging.StreamHandler()
# 设置日志等级
console.setLevel(logging_yaml['level'])
# 设置日志格式
console.setFormatter(logging.Formatter(logging_yaml['format']))
# 添加到logger输出
logger.addHandler(console)


if __name__ == "__main__":
    # 等级顺序
    logger.debug("DEBUG")
    logger.info("INFO")
    logger.warning('WARNING')
    logger.error('ERROR')
    try:
        int('a')
    except Exception as e:
        logger.exception(e)

    print(type((1,2))==tuple)